\documentclass{beamer}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{listings}
\usepackage{amsmath}
\usepackage{enumerate}
\usepackage{amsfonts}
\usepackage{graphicx}
\usepackage{epstopdf}
\usepackage{hyperref}
\usepackage{ulem}
\usepackage{color}
\usepackage{pifont}
\usepackage{amssymb}

\newcommand{\cmark}{\ding{51}}
\newcommand{\xmark}{\ding{55}}

\title{BugRanking}
\subtitle{Fancy subtitle here}
\author{Lukas Subel \newline Mykola Havrikov}
\institute{Saarland University} 
\date{\today}


\setbeamertemplate{footline}[page number]
\beamertemplatenavigationsymbolsempty


\begin{document}

\maketitle
\begin{frame}
\frametitle{Automatic cause-effect chains}
\begin{itemize}
	\item Applying delta debugging to multiple state difference between a passing run and a failing run of a program reveals the cause-effect chains of the failure
	\begin{itemize}
		\item cause-effect chain = list of variables and values to cause the failure
	\end{itemize}
	\item Supports the debugging process by describing the steps how a failure came to be
	\item Things from the user to set:
	\begin{itemize}
		\item Method to test
		\item Oracle to check method result for correctness
		\item Passing input
		\item Failing input 
	\end{itemize}
	\end{itemize}
\end{frame}


\begin{frame}
\frametitle{Initial idea}
\begin{itemize}
	\item User has to set passing/failing inputs 
	\item What happens if we let a fuzzer generate the passing/failing inputs?
	\begin{itemize}
		\item Many different cause-effect chains
		\item Several inputs will lead to cause-effect chains for the same bug
	\end{itemize}
	\item Our idea:
	\begin{itemize}
		\item Use fuzzing to generate random inputs and feed them to the program under test
		\item Generate a related cause-effect chain for these inputs
		\item Compare cause-effect chains to distinguish different
	\end{itemize} 
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{High-Level Flowchart}
\begin{figure}[hp]
	\centering
	\includegraphics[height=0.70\textwidth]{C:/Users/sheak/Workspaces/automatedDebuggingWorkspace/fuzz-n-rank/docs/high-level-flowchart.pdf}
	\label{fig:high-level-flowchart}
\end{figure}
\end{frame}

\begin{frame}
\frametitle{UML Implementation}
\begin{figure}[h]
	\centering
		\includegraphics[width=0.60\textwidth]{C:/Users/sheak/Workspaces/automatedDebuggingWorkspace/fuzz-n-rank/docs/UML.png}
	\label{fig:UML}
\end{figure}
\end{frame}

\begin{frame}
\frametitle{How to rank bugs}
\begin{itemize}
	\item Multiple ideas how to rank cause effect chains
	\item Use the first cause chain as reference, compare the order of variables changed
	\begin{itemize}
		\item Compare variable change order of each new chain with the reference
		\item Problem: depending on the quality of the first chain, depending to much on the input
	\end{itemize}
	\item
	\begin{itemize}
	\item 
	\item
\end{itemize}
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Improvements}
\begin{itemize}
	\item Compare code coverage of chains
	\begin{itemize}
		\item Much less dependency from fuzzed input
	\end{itemize}
	\item Compare new chain with each chain related to the bug, calculate average value
	\begin{itemize}
		\item Dependency from all related chains
	\end{itemize}
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Demo}

\begin{center}
	DEMO
\end{center}
\end{frame}

\begin{frame}
\frametitle{What we have done}
\begin{tabular}{|m|m|m|}
\hline Must-have features & Description & Done? \\ \hline \hline
Fuzzing inputs & A fuzzer will be & \cmark \\
& set up to generate random inputs. & \\ \hline
Bug ranking & The bugs found will be & \cmark \\
& identified and ranked by &\\
& their perceived significance. & \\ \hline
Cause-effect chains & For each found bug & \cmark \\
& a cause-effect chain leading & \\
& to the failure will be produced. & \\ \hline
\end{tabular}
\end{frame}

\begin{frame}
\frametitle{What we have done}
\begin{tabular}{|m|m|m|}
\hline May-have features & Description & Done? \\ \hline \hline
Grammar based & The fuzzer may be able & \xmark \\
fuzzer & to take a context-free grammar & \\
& to generate its inputs. & \\ \hline
Work with a & The bug-ranking mechanism may & \xmark \\
bug-database & be able to use a pre-existing & \\
& bug-database as input. & \\ \hline
Minimization of & The inputs produced by the fuzzer & \cmark \\
chains and inputs & and the cause-effect chains may be & \\
& minimized using delta-debugging. & \\ \hline
\end{tabular} \\[.5cm]
\end{frame}

\begin{frame}
\frametitle{The end}
\begin{center}
	Thank you for your attention!\\
\end{center}
\begin{center}
		Questions?
\end{center}
\end{frame}


\end{document}